$(function() {

	// 初始化表格
	paging(1);
	// 初始化树
	flashTreeNode();

	// 绑定左侧添加按钮
	$('.add_btn').click(function() {
		// 加载层
		index = layer.open({
			extend : [ 'skin/layer_iframe.css' ],
			skin : 'layer-ext-skin-layer_iframe.css',
			type : 1,
			title : '添加类型页面',
			area : [ '400px', '400px' ],
			content : handlerTemplate({
				'name' : "",
				'desc' : ""
			}),
			maxmin : true,
			shadeClose : true
		});

		// 重置

		$("#lookupType").focus();
		$(".resetBtn").click(function() {
			$("#lookupType").attr("value", "");
			$("#lookupDesc").attr("value", "");
		});

		$("#saveBtn").click(function() {
			save_func(this, "add");
		});

		// 字段验证
		$("#lookupType").blur(function() {
			$("#saveBtn").removeAttr("disabled");
			$("#lookupType").attr("style", "border-color: ;");
			$("#lookupType").attr("title", "");
			if ($.trim(this.value) == "") {
				$("#lookupType").attr("style", "border-color:red;");
				$("#lookupType").attr("title", "码表类型不能为空");
			} else {
				$("#lookupType").attr("style", "border-color: ;");
				$("#lookupType").attr("title", "");
			}
		});
		$("#lookupDesc").blur(function() {
			$("#saveBtn").removeAttr("disabled");
			$("#lookupDesc").attr("style", "border-color: ;");
			$("#lookupDesc").attr("title", "");
			if ($.trim(this.value) == "") {
				$("#lookupDesc").attr("style", "border-color:red;");
				$("#lookupDesc").attr("title", "类型描述不能为空");
			} else {
				$("#lookupDesc").attr("style", "border-color: ;");
				$("#lookupDesc").attr("title", "");
			}
		});
	});
	// 绑定右侧添加按钮
	$('.add_code_btn').click(function() {
		layer.open({
			extend : [ 'skin/layer_iframe.css' ],
			skin : 'layer-ext-skin-layer_iframe.css',
			type : 2,
			title : '添加码表页面',
			area : [ '400px', '400px' ],

			content : 'initEditSysLookupCde.do?opera=add',
			maxmin : true,
			shadeClose : true
		});
	});
	// 绑定右侧删除按钮
	$('.del_code_btn').click(function() {
		del_code_btn();

	});
	// 绑定全选框
	$('.checkAll').click(function() {
		if ($(this).is(':checked')) {
			$('.content_table .checkinput').attr('checked', 'checked');
			$(this).attr('title', '取消全选')
		} else {
			$('.content_table .checkinput').removeAttr('checked');
			$(this).attr('title', '全选')
		}
	})
})

function flashTreeNode() {
	var setting = {
		view : {
			addHoverDom : addHoverDom,// 当鼠标移动到节点上时，显示用户自定义控件
			removeHoverDom : removeHoverDom, // 离开节点时的操作
			selectedMulti : false
		},
		data : {
			key : {
				url : "u"
			},
			simpleData : {
				enable : true
			}
		},
		callback : {
			onClick : onClick
		}

	};

	$.ajax({
		type : 'POST',
		dataType : "json",
		data : {},
		url : "initSysLookupCodeTypeTree.do",// 请求的action路径
		error : function() {// 请求失败处理函数
			layer.msg('请求失败！', {
				time : 2000
			});
		},
		success : function(result) { // 请求成功后处理函数。
			var treeNodes = eval("(" + result.lstTree + ")");
			// var treeNodes = result.lstTree; //把后台封装好的简单Json格式赋给treeNodes
			$.fn.zTree.init($("#treeWay"), setting, treeNodes);
		}
	});

	function addHoverDom(treeId, treeNode) {
		var node = $("#" + treeNode.tId + "_span"); // 获取节点信息
		if (treeNode.editNameFlag || $("#updBtn_" + treeNode.tId).length > 0) {
			return;
		}

		var updStr = "<span class='updBtn Edit tree_node_edit content_current edit_dicName edit_action' id='updBtn_"
				+ treeNode.tId
				+ "' style='float:left' title='编辑' onfocus='this.blur();'></span>"; // 定义按钮
		node.after(updStr); // 加载按钮
		var btn = $("#updBtn_" + treeNode.tId);
		// 绑定添加事件，并定义单击操作
		if (btn)
			btn.bind("click", function() {
				// var zTree = $.fn.zTree.getZTreeObj("treeWay");
				edit_Type_Code(treeNode);
			});
	}
	;

	function removeHoverDom(treeId, treeNode) {
		// 鼠标移出时事件
		$("#updBtn_" + treeNode.tId).remove();
	}
	;

	function onClick(event, treeId, treeNode, clickFlag) {
		// 当前结点TEXT
		// alert(treeNode.name);
		$
				.ajax({
					url : "lookupTreeManagement.do",
					type : "post",
					dataType : 'json',
					data : {
						"type" : treeNode.name,
					},
					error : function(data) {
						layer.msg('出错了！！', {
							time : 2000
						});
					},
					success : function(jsons) {
						if (jsons != null) {
							$("#pageTable").html("");
							var pageList = jsons.pageData.pageList;
							for (var i = 0; i < pageList.length; i++) {
								var partsForm = '<tr codeid="'
										+ pageList[i].lookupCode
										+ '">'
										+ '<td class="checkNot"><input type="checkbox" name="checkradio"   value="'
										+ pageList[i].lookupCode
										+ '" class="checkinput" /></td>'
										+ '<td title='
										+ (pageList[i].lookupCode == null ? ''
												: pageList[i].lookupCode)
										+ '>'
										+ (pageList[i].lookupCode == null ? ''
												: pageList[i].lookupCode)
										+ '</td>'
										+ '<td title='
										+ (pageList[i].lookupType == null ? ''
												: pageList[i].lookupType)
										+ '>'
										+ (pageList[i].lookupType == null ? ''
												: pageList[i].lookupType)
										+ '</td>'
										+ '<td title='
										+ (pageList[i].cdeName == null ? ''
												: pageList[i].cdeName)
										+ '>'
										+ (pageList[i].cdeName == null ? ''
												: pageList[i].cdeName)
										+ '</td>'
										+ '<td title='
										+ (pageList[i].cdeValue == null ? ''
												: pageList[i].cdeValue)
										+ '>'
										+ (pageList[i].cdeValue == null ? ''
												: pageList[i].cdeValue)
										+ '</td>'
										+
										// '<td title=' + (pageList[i].cdeFlag
										// == null ? '' : pageList[i].cdeFlag) +
										// '>'
										// + (pageList[i].cdeFlag == null ? '' :
										// pageList[i].cdeFlag) + '</td>' +
										'<td title='
										+ (pageList[i].remark == null ? ''
												: pageList[i].remark)
										+ '>'
										+ (pageList[i].remark == null ? ''
												: pageList[i].remark)
										+ '</td>'
										+ '<td><i class="Edit content_current edit_btn" title="编辑"></i><i class="Del content_current delete_btn" title="删除"></i></td>'
										+ '</tr>';
								$(partsForm).appendTo("#pageTable");
							}
							// 3 绑定编辑按钮
							$('.edit_btn').click(function() {
								edit_func(this);
							});
							$('.delete_btn').click(function() {
								delete_func(this);
							});

							// 处理footer 分页
							var totalCount = jsons.pageData.totalCount;
							var pageSize = jsons.pageData.pageSize;
							var totalPage = jsons.pageData.totalPage;
							var pageNo = jsons.pageData.pageNo;
							dealFooterPage(totalCount, pageSize, totalPage,
									pageNo);
						}
					}
				});
	}

}
function paging(pageNo) {
	var pageSize = $("#pageSize  option:selected").text();
	$
			.ajax({
				url : "pagingLookup.do",
				type : "post",
				dataType : 'json',
				data : {
					"iPageSize" : pageSize,
					"iPageNo" : pageNo
				},
				error : function(data) {
					layer.msg('出错了！！', {
						time : 2000
					});
				},
				success : function(jsons) {
					if (jsons != null) {
						$("#pageTable").html("");
						var pageList = jsons.pageData.pageList;
						for (var i = 0; i < pageList.length; i++) {
							var partsForm = '<tr codeid="'
									+ pageList[i].lookupCode
									+ '">'
									+ '<td class="checkNot"><input type="checkbox" name="checkradio"   value="'
									+ pageList[i].lookupCode
									+ '" class="checkinput" /></td>'
									+ '<td title='
									+ (pageList[i].lookupCode == null ? ''
											: pageList[i].lookupCode)
									+ '>'
									+ (pageList[i].lookupCode == null ? ''
											: pageList[i].lookupCode)
									+ '</td>'
									+ '<td title='
									+ (pageList[i].lookupType == null ? ''
											: pageList[i].lookupType)
									+ '>'
									+ (pageList[i].lookupType == null ? ''
											: pageList[i].lookupType)
									+ '</td>'
									+ '<td title='
									+ (pageList[i].cdeName == null ? ''
											: pageList[i].cdeName)
									+ '>'
									+ (pageList[i].cdeName == null ? ''
											: pageList[i].cdeName)
									+ '</td>'
									+ '<td title='
									+ (pageList[i].cdeValue == null ? ''
											: pageList[i].cdeValue)
									+ '>'
									+ (pageList[i].cdeValue == null ? ''
											: pageList[i].cdeValue)
									+ '</td>'
									+
									// '<td title=' + (pageList[i].cdeFlag ==
									// null ? '' : pageList[i].cdeFlag) + '>'
									// + (pageList[i].cdeFlag == null ? '' :
									// pageList[i].cdeFlag) + '</td>' +
									'<td title='
									+ (pageList[i].remark == null ? ''
											: pageList[i].remark)
									+ '>'
									+ (pageList[i].remark == null ? ''
											: pageList[i].remark)
									+ '</td>'
									+ '<td><i class="Edit content_current edit_btn" title="编辑"></i><i class="Del content_current delete_btn" title="删除"></i></td>'
									+ '</tr>';
							$(partsForm).appendTo("#pageTable");
						}
						// 3 绑定编辑按钮
						$('.edit_btn').click(function() {
							edit_func(this);
						});
						$('.delete_btn').click(function() {
							delete_func(this);
						});

						// 处理footer 分页
						var totalCount = jsons.pageData.totalCount;
						var pageSize = jsons.pageData.pageSize;
						var totalPage = jsons.pageData.totalPage;
						var pageNo = jsons.pageData.pageNo;
						dealFooterPage(totalCount, pageSize, totalPage, pageNo);
					}

				}
			});
}
// 表格编辑按钮方法
function edit_func(obj) {
	var lookupcdeid = $(obj).parent().parent().attr('codeid');
	layer.open({
		extend : [ 'skin/layer_iframe.css' ],
		skin : 'layer-ext-skin-layer_iframe.css',
		type : 2,
		title : '修改码表页面',
		area : [ '400px', '400px' ],
		content : 'initEditSysLookupCde.do?opera=edit&lookupCode='
				+ lookupcdeid,
		maxmin : true,
		shadeClose : true
	});
}

// 表格删除方法
function delete_func(obj) {
	var lookupcdeid = $(obj).parent().parent().attr('codeid');
	if (confirm('Are you sure you want to delete?')) {
		$.ajax({
			url : "deleteLookupcde.do",
			type : "post",
			dataType : 'json',
			data : {
				"lookupCode" : lookupcdeid
			},
			beforeSend : function() {
				$(obj).attr("disabled", "disabled");
			},
			error : function(data) {
				layer.msg('出错了！！', {
					time : 2000
				});
			},
			success : function(result) {
				if (result.flag) {
					layer.msg('删除成功', {
						time : 1300
					});
					paging(1);
				} else {
					layer.msg('删除失败！', {
						time : 1000
					});
					$(obj).removeAttr("disabled");
				}
			}
		});

	}
}
/**
 * 保存
 * 
 * @param obj
 * @param type
 *            add edit均使用此方法
 */
save_func = function(obj, type) {

	var messagelookupType = $("#lookupType").attr("title");
	var messagelookupDesc = $("#lookupDesc").attr("title");
	if ("" == messagelookupDesc && "" == messagelookupType) {

		var data = {};
		data['lookupDesc'] = $("#lookupDesc").val();
		data['lookupType'] = $("#lookupType").val();
		data['type'] = type;
		$.ajax({
			url : "saveLookupType.do",
			type : "post",
			dataType : 'json',
			data : data,
			beforeSend : function() {
				$("#saveBtn").attr("disabled", "disabled");
				$("#tipMsg").html("正在保存中，请稍后......");
			},
			success : function(result) {
				$("#tipMsg").html("");
				if (result.data.flag == 1) {
					if (type == "add") {
						layer.msg('添加成功', {
							time : 2000
						});
					} else {
						layer.msg('修改成功', {
							time : 2000
						});
					}
					parent.paging(1);
					// parent.layer.close(parent.layer.getFrameIndex(window.name));
					// layer.closeAll();
					setTimeout('parent.layer.close(' + index + ')', 2001);
				} else if (result.data.flag == 2) {
					layer.msg('修改成功', {
						time : 2000
					});

					parent.paging(1);
					// parent.layer.close(parent.layer.getFrameIndex(window.name));
					// layer.closeAll();
					setTimeout('parent.layer.close(' + index + ')', 2001);
				} else {
					$("#tipMsg").html("");
					if (type == "add") {
						layer.msg('添加失败,该类型已存在', {
							time : 2000
						});
					} else if (type == "edit") {
						layer.msg('修改失败', {
							time : 2000
						});
					}
					$("#saveBtn").removeAttr("disabled");
				}

			}

		});
	}
}

function edit_Type_Code(treeNode) {
	var data = {};
	var desc = treeNode.name;
	var type = treeNode.tId.split('_')[1];
	
	data['name'] = type;
	data['desc'] = desc;

	index = layer.open({
		extend : [ 'skin/layer_iframe.css' ],
		skin : 'layer-ext-skin-layer_iframe.css',
		type : 1,
		title : '修改码表类型页面',
		area : [ '400px', '400px' ],
		content : handlerTemplate(data),
		maxmin : true,
		shadeClose : true
	});
	// 4 重置
	$("#lookupType").focus();
	$(".resetBtn").click(function() {
		$("#lookupType").attr("value", "");
		$("#lookupDesc").attr("value", "");
	});
	$("#saveBtn").click(function() {
		save_func(this, "edit");
	});
	// 1 字段验证
	$("#lookupType").attr("readonly", "readonly");
	$("#lookupType").blur(function() {
		$("#saveBtn").removeAttr("disabled");
		$("#lookupType").attr("style", "border-color: ;");

	});
	$("#lookupDesc").blur(function() {
		$("#saveBtn").removeAttr("disabled");
		$("#lookupDesc").attr("style", "border-color: ;");
		$("#lookupDesc").attr("title", "");
		if ($.trim(this.value) == "") {
			$("#lookupDesc").attr("style", "border-color:red;");
			$("#lookupDesc").attr("title", "类型描述不能为空");
		} else {
			$("#lookupDesc").attr("style", "border-color: ;");
			$("#lookupDesc").attr("title", "");
		}
	});
}
function del_code_btn() {
	var arrChk = $('.checkinput');
	if (confirm('Are you sure you want to delete all?')) {
		$(arrChk).each(function() {
			if ($(this).prop('checked')) {
				del_func_all(this);
			}

		});
	}
}
//批量删除
function del_func_all(obj) {
	var lookupcdeid = $(obj).parent().parent().attr('codeid');
	$.ajax({
		url : "deleteLookupcde.do",
		type : "post",
		dataType : 'json',
		data : {
			"lookupCode" : lookupcdeid
		},
		beforeSend : function() {
			$(obj).attr("disabled", "disabled");
		},
		error : function(data) {
			layer.msg('出错了！！', {
				time : 2000
			});
		},
		success : function(result) {
			if (result.flag) {
				layer.msg('删除成功', {
					time : 1300
				});
				paging(1);
			} else {
				layer.msg('删除失败！', {
					time : 1000
				});
				$(obj).removeAttr("disabled");
			}
		}
	});

}
/**
 * 模版处理方法
 * 
 * @param data
 * @returns {*}
 */
function handlerTemplate(data) {
	// 注册一个Handlebars模版，通过id找到某一个模版，获取模版的html框架
	var myTemplate = Handlebars.compile($("#lookupType-template").html());
	return myTemplate(data);
}
